// pages/category/category.js
// 引入用来发送请求的方法
import{request} from "../../request/index.js"
Page({

  /**
   * 页面的初始数据
   */
  data: {
    // 左侧的菜单数据
    leftMenuList:[],
    // 右侧的菜单数据
    rightContent:[],
    // 被点击的左侧菜单
    currentIndex:0,
    // 右侧滚动条距离顶部的距离
    scrollTop:0,
    // 接口的返回总数据
    Cates:[]
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
     // 判断是否有旧数据
    // 没有发送请求获取新数据
    // 有且旧没过期的数据，使用本地存储旧数据
   
    // 1.同步获取本地存储中的数据
    const Cates=wx.getStorageSync("cates")
    // 2.判断
    if(!Cates){
      //不存在
      this.getCates(); //调用分类数据
    }else{
      //有旧的数据 定义过期时间 10s改成 5分钟
      if(Date.now()-Cates.time>=1000*10){
         //重新发送请求
         this.getCates(); //调用分类数据
      }else{
        //可以使用旧数据
        this.Cates=Cates.data;//把旧数据添加到接口的返回总数据中
        //左侧分类数据
        let leftMenuList=this.Cates.map((v)=>{ //遍历数组，返回新数组
          return v.cat_name
        })
        //右侧初始商品数据
        let rightContent=this.Cates[0].children
        this.setData({
          leftMenuList,
          rightContent
        })
      }
    }
  },
  //获取分类数据
  async getCates(){
    // request({url:"/categories"})
    // .then(res=>{
    //   console.log(res);
    //   this.Cates=res.data.message;//总数据
    //   //把获取的数据存储在本地缓存中,存入毫秒+数据
    //   wx.setStorageSync("cates",{time:Date.now(),data:this.Cates});
        
    //   //左侧分类数据
    //   let leftMenuList=this.Cates.map((v)=>{ //遍历数组，返回新数组
    //     return v.cat_name
    //   })
    //   //右侧初始商品数据
    //   let rightContent=this.Cates[0].children
    //   this.setData({
    //     leftMenuList,
    //     rightContent
    //   })
    // })
    // 1.使用es7的async await来发送异步请求
    const res=await request({url:"/categories"})
    this.Cates=res;//总数据
    //把获取的数据存储在本地缓存中,存入毫秒+数据
    wx.setStorageSync("cates",{time:Date.now(),data:this.Cates});
    //左侧分类数据
    let leftMenuList=this.Cates.map((v)=>{ //遍历数组，返回新数组
      return v.cat_name
    })
    //右侧初始商品数据
    let rightContent=this.Cates[0].children
    this.setData({
      leftMenuList,
      rightContent
    })
  },
  //左侧点击事件
  handleItemTap(e){
    // console.log(e);
    //点击的索引值
    const {index}=e.currentTarget.dataset
    //根据不同的索引渲染右侧不同的商品内容
    let rightContent=this.Cates[index].children
    console.log(this.data.rightContent);
    this.setData({
      rightContent,//右侧数据
      currentIndex:index, //传递索引
      scrollTop:0,//右侧距离
    }) 
  },
  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {
   
  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})